/*
 * @Author: Vorga
 * @LastEditors: Vorga
 */
#ifndef QUEUE_H
#define QUEUE_H

#define TYPE int

typedef int (*CMP)(const void*,const void*);
typedef void (*FUNC)(const void*);

#include <stdio.h>

//队列也是功能受限的表
//有两个进出口 先进先出FIFO
typedef struct QueueArray
{
    //元素存储位置
    TYPE *base;
    //最大元素数量
    size_t len;
    //队尾下标
    int rear;
    //队头下标
    int front;

} QueueArray;

QueueArray* createQueueArray(size_t len);

void destoryQueueArray(QueueArray* queue);

bool fullQueueArray(QueueArray* queue);

bool emptyQueueArray(QueueArray* queue);

bool pushQueueArray(QueueArray* queue,TYPE val);

bool popQueueArray(QueueArray* queue);

#endif // QUEUE_H
